/*
 * Copyright (c) 2017. 深圳市华百安智能技术有限公司 版权所有
 */

package cn.w;

import android.util.Log;

/**
 * Created by cktor on 2017/8/16.
 */
public class NetInfoConfig {

    static {
        try {
            System.loadLibrary("NetInfoConfig");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static String getEth0IpAddr() {
        return null;
    }


    private static NetInfoConfig netInfoConfig;

    public static NetInfoConfig getInstance() {
        if (netInfoConfig == null) netInfoConfig = new NetInfoConfig();
        return netInfoConfig;
    }

    /**
     * 设置当前设备的网络信息，包括 MAC 地址信息
     *
     * @param netInfo 网络相关信息
     * @return 0，成功；其他，失败
     */
    private native int setNetInfo(byte[] netInfo, int length);
//    private native int setNetInfo(String netInfo, int length);

    /**
     * 设置 IP地址
     */
    private native int setIpInfo(byte[] netInfo, int length);
//    private native int setIpInfo(String netInfo, int length);

    /**
     * 设置当前设备的网络相关信息
     * <p>
     * IP地址 0-3
     * 子网掩码 4-7
     * 网关 8-11
     * Mac地址 12-17
     */
    public boolean setNet(byte[] netInfo) {
        if (netInfo != null && netInfo.length == 18) {
            int returnValue = setNetInfo(netInfo, netInfo.length);
//            int returnValue = setNetInfo(new String(netInfo), netInfo.length);
            if (returnValue == 0) {
                return true;
            }
        }
        return false;
    }

    /**
     * 设置当前设备的网络相关信息
     * <p>
     * IP地址 0-3
     * 子网掩码 4-7
     * 网关 8-11
     */
    public boolean setIp(byte[] netInfo) {
        if (netInfo != null && netInfo.length == 12) {
            int returnValue = setIpInfo(netInfo, netInfo.length);
//            int returnValue = setIpInfo(new String(netInfo), netInfo.length);
            if (returnValue == 0) {
                return true;
            }
        }
        return false;
    }

    private void log(String log) {
        Log.e("NetInfoConfig", log);
    }

}
